home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The X-Philes (2nd Revision)
/
The X-Philes Number 1 (1995).iso
/
xphiles
/
hp48hor1
/
u137.src
< prev
next >
Wrap
Text File
|
1990-10-20
|
3KB
|
123 lines
%%HP: T(3)A(D)F(.);
@ by Mattias Dahl & Morgan Lindqvist
DIR
U137
\<< 2 - 7 MOD 2 + DUP INIT (5,5) \-> ANT POS AIM
\<< 0 POS AIM ANT WFACT 'POS' STO DROP AIM GMARK
DO 1 + POS AIM GETK DUP 'AIM' STO ANT WFACT 'POS' STO OBJ\->
UNTIL 1 SWAP 1 -
START +
NEXT 0 SAME
END MOVES \->TAG
\>>
\>>
GETK
\<<
DO
DO KEY
UNTIL
END
UNTIL
CASE DUP 25 SAME
THEN 24 - GMOVE 0
END DUP DUP DUP 34 SAME SWAP 35 SAME OR SWAP 36 SAME OR
THEN 32 - GMOVE 0
END 51 SAME
THEN 1
END 0
END
END
\>>
GMOVE
\<< \-> P V
\<< P C\->R
CASE V 1 SAME
THEN
IF DUP 1 SAME NOT
THEN 1 -
END
END V 2 SAME
THEN SWAP
IF DUP 1 SAME NOT
THEN 1 -
END SWAP
END V 3 SAME
THEN
IF DUP 10 SAME NOT
THEN 1 +
END
END SWAP
IF DUP 10 SAME NOT
THEN 1 +
END SWAP
END R\->C DUP 'V' STO GMARK P GMARK
PICT { # 107d # 0d } V \->STR " " + 1 \->GROB REPL V
\>>
\>>
GMARK
\<< C\->R 1 - 6 * 1 + R\->B SWAP 1 - 6 * 2 + R\->B SWAP
2 \->LIST PICT SWAP "*" 1 \->GROB GXOR
\>>
INIT
\<< \-> A
\<< PICT { # 0d # 0d } # 131d # 64d BLANK REPL { # 0d# 0d } PVIEW 0 10
FOR X
# 0d X 6 * R\->B 2 \->LIST DUP 1 # 60d PUT LINE
6 X * R\->B # 0d 2 \->LIST DUP 2 # 60d PUT LINE
NEXT
PICT { # 67d # 0d } "Aiming at (5,5)" 1 \->GROB REPL
PICT { # 67d # 6d } "MOVES" 1 \->GROB REPL 1 A
FOR X
PICT # 67d X 1 + 6 * R\->B 2 \->LIST "SUB :" X + 1 \->GROB REPL
RAND 10 * IP 1 + RAND 10 * IP 1 + R\->C
NEXT A \->LIST
\>>
\>>
WFACT
\<< 0 \-> POS AIM ANT DIS
\<< POS ANT AIM MSUB 'POS' STO 'DIS' STO 1 ANT
FOR X PICT # 104d X 1 + 6 * R\->B 2 \->LIST 'DIS' X GET
IF DUP 0 SAME
THEN DROP "SUNKEN"
ELSE \->STR
END 1 \->GROB REPL
NEXT PICT {# 104d # 6d } 3 PICK \->STR 1 \->GROB REPL DIS POS
\>>
\>>
MSUB
\<< \-> POS ANT AIM
\<< 1 ANT
FOR X 'POS' X GET
IF DUP 0 SAME NOT
THEN AIM - C\->R ABS SWAP ABS MAX
IF DUP 0 SAME
THEN 'POS' X 0 PUT
ELSE
IF 59 FS?
THEN 'POS' X GET DUP GMARK GMARK
END
IF 60 FS?
THEN 'POS' DUP X GET C\->R 1 2
START RAND 3 * IP 1 - +
IF DUP 10 >
THEN 1 -
END
IF DUP 1 <
THEN 1 +
END SWAP
NEXT R\->C X SWAP PUT
END
END
END
NEXT ANT \->LIST POS
\>>
\>>
END